package structuralModel.combinationModel.organization;

import java.util.*;

/**
 * 功能描述:物理边界组件
 * 2024/08/21
 *
 * @author ZhangYi
 */
public abstract class PhysicalBoundaryCompoent {
	/***
	 * 根组织下的子层级信息
	 */
	protected List<PhysicalBoundaryCompoent> physicalBoundaryCompoentList = new ArrayList<>();

	protected Map<String, PhysicalBoundaryCompoent> physicalBoundaryCompoentMapIndex = new HashMap<>();
	private PhysicalBoundary physicalBoundary;

	public PhysicalBoundaryCompoent() {
	}
	public PhysicalBoundaryCompoent(PhysicalBoundary physicalBoundary) {
		this.physicalBoundary = physicalBoundary;
	}


	public PhysicalBoundary getPhysicalBoundary() {
		return physicalBoundary;
	}

	public void setPhysicalBoundary(PhysicalBoundary physicalBoundary) {
		this.physicalBoundary = physicalBoundary;
	}

	/**
	 * 添加元素
	 *
	 * @param e e
	 * @author ZhangYi
	 */
	protected void addElement(PhysicalBoundaryCompoent e) {
		throw new UnsupportedOperationException("该方法未实现");
	}

	;

	/**
	 * 删除元素
	 *
	 * @param e e
	 * @author ZhangYi
	 */
	protected void removeElement(PhysicalBoundaryCompoent e) {
		throw new UnsupportedOperationException("该方法未实现");
	}


	protected PhysicalBoundaryCompoent getElement(String parentCode){
		throw new UnsupportedOperationException("该方法未实现");
	}


	public List<PhysicalBoundaryCompoent> getPhysicalBoundaryCompoentList() {
		return physicalBoundaryCompoentList;
	}

	public void setPhysicalBoundaryCompoentList(List<PhysicalBoundaryCompoent> physicalBoundaryCompoentList) {
		this.physicalBoundaryCompoentList = physicalBoundaryCompoentList;
	}

	public Map<String, PhysicalBoundaryCompoent> getPhysicalBoundaryCompoentMapIndex() {
		return physicalBoundaryCompoentMapIndex;
	}

	public void setPhysicalBoundaryCompoentMapIndex(Map<String, PhysicalBoundaryCompoent> physicalBoundaryCompoentMapIndex) {
		this.physicalBoundaryCompoentMapIndex = physicalBoundaryCompoentMapIndex;
	}

	/**
	 * 全部查询
	 *
	 * @author ZhangYi
	 */
	public abstract void queryAll();

}
